/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedbeans;

import controller.PacienteControllerLocal;
import entities.Paciente;
import exception.PacienteExistsException;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIData;
import static utils.MessagesUtil.*;

/**
 *
 * @author Sostenes, Thiago, Felipe
 */
@ManagedBean
@RequestScoped
public class PacienteBean {

    @EJB
    private PacienteControllerLocal pacienteController;
    private Paciente paciente;
    private UIData table;
    private List<Paciente> pacientes;
    private boolean editable;

    @PostConstruct
    public void init() {
        paciente = pacienteController.createPaciente();
        editable = false;
    }

    public String create() {
        System.out.println("CREATE");
        try {
            pacienteController.persist(paciente);
        } catch (PacienteExistsException ex) {
            addErrorMessage(ex, "createPaciente:cpf");
            return "createPaciente";
        }
        return "listPacientes";
    }

    public String remove() {
        System.out.println("REMOVE");
        pacienteController.remove((Paciente) table.getRowData());
        return "listPacientes";
    }

    public String update() {
        System.out.println("UPDATE");
        pacienteController.update(paciente);
        editable = false;
        return "listPacientes";
    }

    public String goToEditPage() {
        System.out.println("GOTOEDITPAGE");
        editable = true;
        paciente = (Paciente) table.getRowData();
        System.out.println("FUIONARIONOME: " + paciente.getNome());
        return "createPaciente";
    }

    public Paciente getPaciente() {
        return paciente;
    }

    public UIData getTable() {
        return table;
    }

    public void setTable(UIData table) {
        this.table = table;
    }

    public List<Paciente> getPacientes() {
        pacientes = pacienteController.list();
        return pacientes;
    }

    public void setPacientes(List<Paciente> pacientes) {
        this.pacientes = pacientes;
    }

    public boolean isEditable() {
        return editable;
    }
}
